// package main

// import (
//     "fmt"

//     "github.com/eProsima/Fast-DDS-go"
// )

// func main() {
//     // 创建域参与者
//     domainParticipantFactory := fastdds.DomainParticipantFactory_GetInstance()
//     participant := domainParticipantFactory.CreateParticipant(0, nil)
//     if participant == nil {
//         fmt.Println("Failed to create participant")
//         return
//     }
//     defer domainParticipantFactory.DeleteParticipant(participant)

//     // 创建主题
//     topicData := fastdds.TopicData{
//         Name: "HelloWorldTopic",
//         Type: "HelloWorld",
//         Qos:  &fastdds.TopicQos{},
//     }
//     topic := participant.CreateTopic(topicData)
//     if topic == nil {
//         fmt.Println("Failed to create topic")
//         return
//     }
//     defer participant.DeleteTopic(topic)

//     // 创建订阅者
//     subscriber := participant.CreateSubscriber(&fastdds.SubscriberQos{})
//     if subscriber == nil {
//         fmt.Println("Failed to create subscriber")
//         return
//     }
//     defer participant.DeleteSubscriber(subscriber)

//     // 创建数据读取者
//     reader := subscriber.CreateDataReader(topic, &fastdds.DataReaderQos{}, &HelloWorldListener{})
//     if reader == nil {
//         fmt.Println("Failed to create data reader")
//         return
//     }
//     defer subscriber.DeleteDataReader(reader)

//     // 等待接收消息
//     select {}
// }

// // HelloWorld 结构体定义
// type HelloWorld struct {
//     Message string
// }

// // HelloWorldListener 数据读取监听器
// type HelloWorldListener struct{}

// func (l *HelloWorldListener) OnDataAvailable(reader fastdds.DataReader) {
//     var sample HelloWorld
//     if _, err := reader.TakeNextSample(&sample); err == nil {
//         fmt.Printf("Received sample: %s\n", sample.Message)
//     } else {
//         fmt.Printf("Failed to take sample: %v\n", err)
//     }
// }